#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time    : 2021/5/12 01:15
# @Author  : Samge
"""
冒泡算法
"""
from utils import test_data
from utils.coast_time import coast_time


@coast_time
def bubble_sort(arr, desc=True):
    """
    冒泡排序，
        从左往右冒，已经冒过的不再参与运算
    :param arr: 要处理的列表
    :param desc: True-降序，False-升序
    :return: 输出排序后的列表
    """
    max_size = len(arr)
    for i in range(1, max_size):
        for j in range(max_size - i):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    if desc:
        arr.reverse()
    return arr


if __name__ == '__main__':
    test_lst = test_data.get_test_arr(1000, shuffle=True, reverse=False)
    print(bubble_sort(test_lst, desc=True))
    print(bubble_sort(test_lst, desc=False))

